package com.zhuangjie.mvc.helper.GeoHelper;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;

/**
 * 地理坐标（可转换input-output实体类）
 *
 * @author zhuangjie
 * @date 2023/11/17
 */
@Data
@NoArgsConstructor
public class GeoCoordinates {
    /**
     * 输入的经度
     * 业务dto可重写注解
     */
    @ApiModelProperty(value = "coordinateType-经度", required = true)
    @NotNull(message = "经度不能为空")
    private Double longitude;

    /**
     * 输入的纬度
     * 业务dto可重写注解
     */
    @ApiModelProperty(value = "coordinateType-纬度", required = true)
    @NotNull(message = "纬度不能为空")
    private Double latitude;

    /**
     * 输入的地理坐标系统（对应的类属性longitude、latitude）: 值请参考CoordinateTransferUtils.CoordType枚举
     */
    @ApiModelProperty(value = "输入的坐标系统(默认gcj02)", required = false)
    // 只反序列化，不进行序列化（JSON）
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String coordinateType = CoordinateTransferUtils.CoordType.GCJ02.getCode();


    public GeoCoordinates(Double longitude, Double latitude) {
        this.longitude = longitude;
        this.latitude = latitude;
    }
}
